perm filename DESTRU.STA[TIM,LSP] blob sn#702194 filedate 1983-02-12 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	 Destructive operation benchmark
C00005 00003	(fasload meter)(fasload destru)
C00014 ENDMK
CāŠ—;
;;; Destructive operation benchmark

(declare (fixsw t))
(declare (fasload meter fas dsk (tim lsp)))
(declare (setq meter:meterp t))

(meter-funs ((push "Pushes")(car "Cars")(cdr "Cdrs")
             (NULL "Nulls") (rplaca "RPlacas")(rplacd "Rplacds")
	     (nconc "Nconc")(length "Lengths") (1- "Sub1s") (= "='s"))
	    (defun destructive (n m)
		   (let ((l (do ((i 10. (1- i))
				 (a () (push () a)))
				((= i 0) a))))
			(do ((i n (1- i)))
			    ((= i 0))
			    (cond ((null (car l))
				   (do ((l l (cdr l)))
				       ((null l))
				       (or (car l) 
					   (rplaca l (ncons ())))
				       (nconc (car l)
					      (do ((j m (1- j))
						   (a () (push () a)))
						  ((= j 0) a))))) 
				  (t
				   (do ((l1 l (cdr l1))
					(l2 (cdr l) (cdr l2)))
				       ((null l2))
				       (rplacd (do ((j (// (length (car l2)) 2) (1- j))
						    (a (car l2) (cdr a)))
						   ((= j 0) a)
						   (rplaca a i))
					       (let ((n (// (length (car l1)) 2)))
						    (cond ((= n 0) (rplaca l1 ())
								   (car l1))
							  (t 
							   (do ((j n (1- j))
								(a (car l1) (cdr a)))
							       ((= j 1)
								(prog1 (cdr a)
								       (rplacd a ())))
							       (rplaca a i)))))))))))))

(include "timer.lsp")
(timer timit (destructive 600. 50.))
(fasload meter)(fasload destru)
(timit)
Timing performed on Saturday 02/12/83 at 16:50:32.
Cpu (- GC) Time = 4.673
Elapsed Time = 32.0
Wholine Time = 18.7333333
GC Time = 5.231
Load Average Before  = 0.92353368
Load Average After   = 1.1189996
Average Load Average = 1.02126664
NIL 
(meter:report)
Statistics
Meter for: DESTRUCTIVE
Sub1s = 127980 (23.5%)
Pushes = 43010 (7.89%)
='s = 142635 (26.19%)
Nulls = 6686 (1.22%)
Cars = 20824 (3.82%)
Cdrs = 99537 (18.28%)
RPlacas = 84550 (15.52%)
Nconc = 860 (0.15%)
Rplacds = 9167 (1.68%)
Lengths = 9252 (1.69%)
Total = 544501
T